<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of Inscripciones
 *
 * @author Virtualidad
 *
 * @export Modules
 * 
 */
class Inscripciones extends Module {

    public function index() {
        $codigoTipo = $this->request->get("CodigoTipo", 0);

        $this->assign("tiposPlanes", array(0 => "Pregrado", 1 => "Posgrado", 2 => "Diplomado"));
        $this->assign("codigoTipo", $codigoTipo);

        $this->assign("careers", $this->model->career->GetByTipoPrograma($codigoTipo, false));
        $this->assign("inscribirse", $this->route->action("Inscribirse"));

        $this->display("index");
    }

    public function Inscribirse() {
        $codigoPlan = $this->request->get("CodigoPlan", "");
        $nombrePlan = $this->request->get("NombrePlan", "");
        $codigoTipo = $this->request->get("CodigoTipo", "");

        if ($codigoPlan == "" || $nombrePlan == "" || $codigoTipo == "") {
            $this->index();
        } else {
            $this->assign("tiposPlanes", array(0 => "Pregrado", 1 => "Posgrado", 2 => "Diplomado"));
            $this->assign("codigoPlan", $codigoPlan);
            $this->assign("nombrePlan", $nombrePlan);
            $this->assign("codigoTipoActual", $codigoTipo);

            $this->assign("paises", $this->model->countries->GetAll());
            $this->assign("action", $this->route->action("Save"));
            $this->assign("return", $this->route->action("index"));
            $this->assign("GetProgramas", $this->route->action("GetProgramas"));

            $this->display();
        }
    }

    public function Save() {

        if ($this->request->submitted()) {

            Loader::using("models::entities::Interesados");
            $interesado = new Interesados();

            $interesado->setDetalleConcepto($this->processDetalleConcepto(
                            $this->request->post("DetalleConcepto")
            ));
            //Nombre completo
            $interesado->setApellidos($this->request->post("Apellidos"));
            $interesado->setCelular($this->request->post("Celular"));

            $interesado->setCodigoConcepto(3);

            //Lugar de nacimiento
            $Pais = new Paises();
            $Pais->setNombre($this->request->post("PaisNacimiento"));

            $Departamento = new Departamentos();
            $Departamento->setPais($Pais);
            $Departamento->setNombre($this->request->post("DepartamentoNacimientoNombre"));

            $Municipio = new Municipios();
            $Municipio->setNombre($this->request->post("CiudadNacimientoNombre"));
            $Municipio->setDepartamento($Departamento);

            $interesado->setCiudadNacimiento($Municipio);
            //Not null
            $interesado->setCodigoConcepto(3);
            //Datos de  Contacto
            $DatosContacto = new DatosContacto();
            //Ciudad
            $residencia = new Municipios();
            $residencia->setNombre($this->request->post("CiudadResidencia"));
            $DatosContacto->setMunicipio($residencia);
            //Direccion y telefono
            $DatosContacto->setDireccion($this->request->post("Direccion"));
            $DatosContacto->setTelefono($this->request->post("Telefono"));

            $interesado->setDatosContacto($DatosContacto);

            $interesado->setEmail($this->request->post("Email"));
            $interesado->setEstrato($this->request->post("Estrato"));
            $interesado->setFechaNacimiento(dateToJson($this->request->post("FechaNacimiento")));
            $interesado->setNombres($this->request->post("Nombres"));

            $PlanEstudio = new PlanesEstudios();
            //Not null
            $PlanEstudio->setCodigoPlan($this->request->post("CodigoPlan"));
            //Not null
            $PlanEstudio->setNombrePlan($this->request->post("NombrePlan"));

            $interesado->setPlanEstudio($PlanEstudio);
            $interesado->setSexo($this->request->post("Sexo"));

            $interesadoPk = new InteresadoPk();
            $identificacion = new Identificacion();

            $identificacion->setNumeroDocumentoIdentidad($this->request->post("NumeroDocumentoIdentidad"));
            $identificacion->setTipoDocumentoIdentidad($this->request->post("TipoDocumentoIdentidad"));

            $interesadoPk->setCodigoPlanEstudio($PlanEstudio->getCodigoPlan());
            $interesadoPk->setIdentificacion($identificacion);

            $interesado->setInteresadoPk($interesadoPk);

            $reporte = $this->model->interested->Create($interesado);
            $this->addMessage(new Message("Usted ha sido inscrito exitosamente.", "Felicidades ", Message::SUCCESS));
            $servicesURI = ModulesContext::instance()->getConfig()->acawebServicesURI;
            $this->assign("reporte", $servicesURI . trim($reporte, '" '));
            $this->display();
        } else {
            $this->index();
        }
    }

    public function GetProgramas() {
        $TipoPrograma = $this->request->get("TipoPrograma");
        echo($this->model->career->GetByTipoPrograma($TipoPrograma));
    }

    public function GetMunicipio() {
        $Departamento = $this->request->get("CodigoDepartamento");
        echo($this->model->cities->GetByStates($Departamento));
    }

    public function GetDepartamento() {
        $Pais = $this->request->get("CodigoPais");
        echo($this->model->states->GetByPais($Pais));
    }

    private function processDetalleConcepto($detalleConcepto) {
        return $detalleConcepto + 3;
    }

}

?>
